home *** CD-ROM | disk | FTP | other *** search
- ---INVOKE.DOC---
-
- A86 Program Invocation
-
- To invoke A86, you must provide a program invocation line, either typed to the
- console when the DOS command prompt appears, or included in a batch file. The
- program invocation line consists of the following:
-
- 1. The program name A86.
-
- 2. The names of the source files you want to assemble. You may use the wild-
- card delimiters * and ? if you wish, to denote a group of source files to be
- assembled. A86 will sort all matching names into alphabetical order for
- each wild-card specification; so the files will be assembled in the same
- order even if they get jumbled up within a directory.
-
- A86 identifies the end of the source file names when it sees a name with no
- extension, or a name with the default object-extension. That extension is
- .COM, unless you have assembled an ORG 0 statement; in which case the default
- extension is .OBJ. Sorry, you cannot have a source file with the default
- object extension.
-
- 3. You may optionally provide the word TO, to separate the source file names
- from the output file names.
-
- 4. The name of the output program. If you do not provide an extension, A86
- will assume that you want the extension .COM (.OBJ if you had an ORG 0).
- If you want your program file to have no extension, you end the file name
- with a period.
-
- You have the option to omit both the program file name and the symbol table
- file name from the invocation. If you do so, A86 will output the program
- source.COM (or source.OBJ) and the symbol table source.SYM; where "source"
- is a name derived from the list of source files, according to the rules
- described in the section "Strategies for Source File Maintenance" below.
-
- 5. The name of the symbol-table file. If you do not provide an extension, A86
- will assume that you want the extension .SYM. If you want your symbol table
- file to have no extension, you end the file name with a period.
-
- You have the option to omit the name of the symbol table file. If you do
- so, A86 will use the same root as the output program name, with a .SYM
- extension. If you desire no symbol table file, specify "NUL.". Be sure to
- put a period after NUL, or else you will get a file called NUL.SYM. (NUL is
- the DOS "garbage can" device, which discards anything output to it.)
-
-
- Strategies for Source File Maintenance
-
- A86 encourages modular programming, by letting you break your source into
- separate files, with complete impunity. A86 has no concern whatsoever for
- file breaks-- it treats the sequence of files as a single source code stream.
-
- You should build up libraries of source modules, containing commonly-used
- procedures. Whenever you need the functionality of a procedure, you can simply
- include the appropriate source file in the list of files to be assembled.
-
- You should consider one or more of the following strategies, which I have
- adopted in my source file management:
-
- 1. I name all my A86 source files with the same extension, which is found on
- no other files. The particular extension I have chosen is ".8". I did not
- choose the more common .ASM; because I have a few source-files designed for
- MSDOS's assembler. If you don't like .8, I would suggest .A86.
-
- 2. I keep a separate sub-directory on my hard disk for each multi-source-file
- A86 program I have. Then the simple command "A86 *.8" performs the assembly
- for the current directory's program.
-
- 3. I exploit the fact that A86 expands wild-cards into alphabetical order.
- Whenever I want a source-file to be assembled first (e.g., when it contains
- variable declarations), I append a decimal digit to the start of the file
- name: 0 for the first file, 1 for the second, etc., for however many files
- that need to be explicitly ordered. If a file needs to come last, I append
- a "Z" to the start of the file name.
-
- To accomodate the above strategy, I have programmed A86 to a somewhat
- complicated algorithm for determining the default output file-name. I use
- the name of the first source file; but I truncate the first character if
- it is a decimal digit. However, you may have a library file that must come
- first; so I have provided the following exception: if you have a source-file
- whose name begins with the digit "9", that name (without the 9) is used.
- If you don't like this, you can always explicitly give the program name you
- want: "A86 *.8 MYPROG".
-
- 4. If I have a source file used in more than one program, I do not want to have
- more than one copy of that program exist on the disk for any amount of time.
- There is a reason for this that is much more important than wasted space:
- I wish any bug-fixes or enhancements to those files to be propagated to all
- programs using those files. I wish no confusion as to precisly which copy
- is the latest version.
-
- There are two ways to accomplish the above-stated goal of one-copy-per-file.
- First, I can make a .BAT file for assembling each program, that explicitly
- lists the source files for that program, wherever they may be. Or second,
- I can make files GET.BAT and DEL.BAT. GET.BAT temporarily copies the common
- files from a library-directory into the program's directory. I work on the
- program; then when I am finished, DEL.BAT deletes the files, as well as
- *.BAK, *.SYM, *.ERR, and *.OLD; leaving a clean directory. If you wish to
- have the option of modifying the library files, then you should have DEL.BAT
- copy those files back to the library directories, before deleting them from
- the local directory.
-